1. Field of the Invention
This invention relates generally to automatic test equipment (ATE) for electronics, and, more particularly, to techniques for programming multiple clocks in an automatic test system.
2. Description of Related Art Including Information Disclosed Under 37 C.F.R. 1.97 and 1.98
ATE systems typically use multiple clocks for testing electronic devices. In a common testing scenario, three or more clocks may be used—for example, a digital clock, a source clock, and a capture clock. The digital clock defines the rate at which digital I/O applies digital signals to the DUT (device under test), or samples digital signals from the DUT. The source clock defines the rate at which an analog source, such as an AWG (arbitrary waveform generator), varies the output levels of analog signals applied to the DUT. The capture clock defines the rate at which a digitizer samples analog signals from the DUT.
Device testing generally requires that different clocks of a test system be coordinated. When testing a DAC (digital-to-analog converter), the digital clock is coordinated with the capture clock to ensure that the digitizer samples the DAC's output at known points referenced to the DAC's input codes. Similarly, when testing an ADC (analog-to-digital converter), the digital clock is coordinated with the source clock to ensure that digital readback from the ADC is referenced to known points along the analog input signal.
It is particularly important to coordinate clocks for achieving “coherence.” A signal is coherent when each tone in the signal completes an integer number of cycles within the sample window. Mathematically, coherence is achieved when Fs/N=Fik/Mk, where                Fs is the instrument's sampling rate;        N is the number of samples in the sample window (sourced or captured);        Fik is the frequency of interest (output or expected) of the kth tone; and        Mk is the number of cycles that the kth tone completes within the sample window.The need for coherence arises when two or more clocks are involved in a single test, for example, when one clock controls the sourcing of an input signal and another clock controls the capture of an output signal that contains the same frequencies as the input signal. Without coordination, it would be impossible to guarantee that Fs/N=Fik/Mk, and thus to guarantee coherence.        
Coherence is important for preventing “leakage.” Leakage is the mathematical consequence of sourcing or sampling truncated tones. Leakage adds harmonic distortion to sourced signals and distorts the DFT's (Discrete Fourier Transforms) of sampled signals. Therefore, leakage impairs a test system's ability to test device characteristics accurately.
Test engineers conventionally apply their knowledge of a test system's clocking system and instruments ascertain clock frequencies manually. Clocking systems and instruments can be extremely complex, however, imposing constraints that limit the flexibility with which timing can be prescribed. Therefore, test engineers must conventionally have a high degree of expertise to configure the clocks of a test system successfully.
Difficulties in prescribing a test system's clocks are compounded when a test setup requires coherence. Coherence imposes the additional constraint that two or more clocks in a tester must have a fixed frequency ratio. Oftentimes, constraints in the clocking system or instruments make it impossible to achieve this ratio at the specific frequencies that the test engineer wishes to use. To work around these constraints, the test engineer generally searches for nearby frequencies that the test system can produce, which also meet the required ratio. This task often comes down to a time-consuming process of trial and error. In addition, nothing about this manual technique ensures that the frequencies ultimately used are the closest realizable frequencies, which meet the ratio constraint, to the originally desired frequencies. Therefore, the current technique does not necessarily minimize frequency errors.
What is needed is a simpler, more accurate technique for programming clocks in an automatic test system.